The present invention relates generally to communications technologies. More specifically, the invention relates to a system and techniques providing advanced telecommunications services using connectionless network host(s) for service implementation while using connection-based network equipment for transport of at least a portion of a telecommunications session.
Generally, telecommunications systems provide the ability for two or more people or machines (e.g., computerized or other electronic devices) to communicate with each other. Many types of telecommunications systems exist in the prior art. Examples include telephone systems and networks, data communications systems, computer networking systems such as the Internet, wireless and satellite communications systems, and so forth. Each of these systems is inherently enabled or can be retrofitted via software and/or electronic hardware to provide telecommunications services between persons or devices coupled to such systems. Telecommunications systems and services in a general sense are sometimes limited to simple voice or audio communications, although such systems may support communications of other types of data such as signaling and protocol data, video data, and computer or device application data.
FIG. 1 illustrates an example of a prior art telephone network 101 that is a common example of a telecommunications system in widespread use throughout the world. As illustrated, the telephone network 101 includes a number user telephony devices 105 through 108 (e.g., telephones) that inter-connect to various tandem or central offices 110 through 113. Communications media (e.g., telephone lines, wireless links, and/or the like) interconnect the offices 110 through 113 to one another to form a public switched telephone network (PSTN) 101-A. The central or tandem offices 110 through 113 may be replaced, for example, private branch exchanges, PSTN control hardware or other telephone switching equipment. Such equipment is typically owned by a telephone service provider. Users of the telephone network 101 typically subscribe to a telecommunications service (e.g., telephone service) which the telephone service provider offers.
The telephone network 101 also includes a PSTN signaling network 101-B that operates over the same medium as the PSTN 101-A . The PSTN signaling network 101-B generally supports a standard signaling technique such as Signaling System Seven (SS7) or User-to-Network interfaces between the offices 110 through 113 and the user telephony devices 105 through 108 to support call connections (e.g., telephone calls, not specifically shown) between the user telephony devices 105 through 108. The user telephony devices 105 through 108 may be telephone handsets, telephone answering machines, fax machines, modems or other such devices.
The telephone network 101 is an example of a connection-based network. To communicate in a connection-based network, the network components (telephony devices and switching equipment in this example) establish a dedicated connection or path between two or more end points of communication. The dedicated connection, also called a circuit or switched circuit generally remains active or established during the duration of a telecommunications session between parties using the connection.
By way of example, in FIG. 1, suppose a user (not shown) of the user telephony device 105 desires to communicate with a user (not shown) of the user telephony device 108. To do so, the user of user telephony device 105 picks up a handset of the user telephony device 105. This action causes the central office 113 to establish a dedicated connection (a completed circuit) to the central office 113 for use by the user telephony device 105. Thereafter, when the user of telephony device 105 enters connection establishment information in the form of a phone number corresponding to the user telephony device 108, the central office 113 extends the dedicated connection through the PSTN 101-A to the central office 112 using signaling provided by the PSTN signaling network 101-B. When the central office 112 receives this signaling, the central office 112 completes the connection to the user telephony device 108 causing it to ring. When a user or machine answers the user telephony device 108 by lifting the handset for example, this action fully establishes an end-to-end connection between the user telephony device 105 and the user telephony device 108. The dedicated connection remains established for the duration of the communications session between the users using the user telephony devices 105 and 108, even if they are not speaking or otherwise communicating at all times.
Typically in a connection-based network such as telephone network 101, the network components (e.g., switching offices) can identify various active dedicated communications sessions by the circuit or wire identifiers of the physical wires with which the network 101 uses to transport communications for those sessions. A central office, for example, can identify one particular segment of a connection circuit used for communications with a user telephony device by the telephone number associated with the segment that leads to the device. Most central office switching equipment can be programmed to identify a particular call identifier such as a telephone number with a particular circuit associated with a telephony device located at the end of the circuit. When the central office equipment receives a request to establish a call connection to a telephony device on a particular circuit, the central office can activate the circuit to form a completed circuit or call connection to the telephony equipment on the opposing end of the circuit.
Prior art telephone switching offices and equipment are able to combine certain signaling techniques such as those supported by the PSTN signaling network 101-B with the ability to identify connection segments or individual circuits in order to support various prior art extended telecommunication services. Such services provide features within the telephone network beyond the ability of the network to support simple end to end telephone calls. For example, many prior art telephone networks support calling features such as call waiting, call forwarding, missed call call-back (also known as xe2x80x9cstar-69xe2x80x9d), toll-free xe2x80x9c800xe2x80x9d numbers, scheduled wake-up calls, conference calling, and so forth. A prior art connection-based telephone network provides each of these types of services based on connection-based network signaling which may occur before, during, and/or after the actual establishment or activation of one or more individual circuits or call connections to one ore more telephony devices (e.g., before, during or after placement of a telephone call). For example, a prior art toll-free xe2x80x9c800xe2x80x9d number service uses signaling before placing a call connection to perform a xe2x80x9clookupxe2x80x9d operation of the toll-free phone number in order to reverse call charges to the receiver of the call (identified by the receiving call circuit) instead of charging the sender or calling party. A prior art call waiting service uses signaling during a call connection to notify a user in the active call connection of another incoming call connection for the same circuit. A scheduled wake up call service provides call signaling after one call connection is made (the call to schedule the wake up call) but before another future call connection is placed (the actual wake up call).
In each of these examples, a signaling system within the telephone network (e.g., 101) provides signaling to support, track, or otherwise manipulate one or more basic dedicated circuits or call connections between one or more telephony devices in the network. In FIG. 1 then, while the PSTN signaling network 101-B may be quite robust to support the aforementioned enhanced calling features, the underlying results from the signaling are essentially to establish one or more call connections across the telephone network 101 to support communications sessions which are typically voice grade.
Generally, large telecommunication service companies (e.g., telephone companies such as ATandT, MCIWorldCom, Bell Atlantic, GTE and the like) own and operate the equipment (e.g., public telephone switching equipment) and media (e.g., telephone lines, satellite links, etc.) that support communications on a telephone network. Such equipment and media is presently widespread in either physical or wireless form throughout much of the United States and the world. As a result, telephone service of some sort, be it physical land-based lines or wireless service (e.g. cellular or satellite) is generally available in most locations. Since service providers have spent significant amounts of time and money to install the existing telephone network infrastructure, much of the equipment from twenty, thirty or more years ago is still in use today to support call connections. Due to such a large investment in the existing systems, public telephone service providers that want to offer advanced calling services in addition to the placement of regular point-to-point public telephone call connections must develop and deploy such services using the existing public telephone infrastructure as a base. That is, if a public telephone service provider desires to support one or more advanced calling services such as those mentioned above, such new services must be fully compatible with the existing public telephone infrastructure or development costs become prohibitive and/or the advanced services might not work properly due to limitations of the existing equipment.
To this end, only highly skilled technicians under the employ of the telephone companies are generally allowed to modify and further develop the existing public telephone software, hardware, and signaling systems such as SS7 that inter-operate and control prior art telephone network switching equipment. Moreover, once a new service such as call waiting has been perfected to work with the existing public telephone infrastructure, deployment of the service to individual consumer telephones requires that the consumer (i.e., public telephone subscriber) notify the public telephone service provider of the desire for the service and also requires the service provider to separately instruct a technician to activate the service for a call connection (e.g., the phone number) associated with that particular individual public telephone subscriber.
In contrast to connection-based networks such as the telephone network 101 in FIG. 1 which operates using a dedicated connection, a connection-less network such as a computer network can support telecommunications services without a single dedicated path to support the communications through the network.
FIG. 2 illustrates an example of a prior art connectionless computer network 140 configured to support telecommunications. The connectionless network 140 includes a plurality of network devices 151 through 155 interconnected via data links (e.g., 150), as well as computer hosts 144 and 145 which in this example each include a respective attached computer telephony device 141, 142. This example shows the connectionless network as an Internet Protocol (IP) network 102 which is a computer network such as the Internet. The network devices 151 through 155 might be routers, for example, which can quickly route data in the form of packets, cells frames or the like between computer hosts 144 and 145 (only two hosts are shown in this example). The computer hosts 144 and 145 can be any type of computer such as personal computers, workstations or the like.
To operate as a telecommunications system, the connectionless computer network 140 can use a technology such as Voice Over IP (VOIP). VOIP is generally provided by a software application (not specifically shown) that executes on the computer hosts 144 and 145. Using a VOIP application, a user (not shown) of computer host 144 can speak into a handset or microphone provided as part of the computer telephony equipment 141. The computer host 144 receives, digitizes and packetizes the voice and transmits the voice data in packets, cells, frames or some other unit (not specifically shown) onto the IP network 102. The routers 151 through 155 can receive and route the various voice data packets through the IP network 102, one by one, until they reach their intended destination computer host 145. Upon receipt of the voice data packets, the destination computer host 145 de-packetizes the voice data and converts it back into an analog signal which is provided to a speaker provided as part of the computer telephony equipment 142 for listening by a recipient user (not shown). Such a system can send voice data in either direction between users thus providing a two-way telecommunications session. In this manner, users are able to speak to each other using computer network communications.
Since the IP network 102 is a connectionless network, each voice data packet sent from the computer host 144 is individually routed through the network 102. Depending upon network congestion (e.g., heavy data packet loads resulting in network devices buffering packets for processing) within the various network devices 151 through 155, each packet may take a different route through the network 102. When a user is not speaking into his or her computer telephony equipment, the computer hosts 144 and 145 and network devices 151 through 155 generally do not transmit packets to one another, hence the name xe2x80x9cconnectionlessxe2x80x9d network.
A VOIP software application uses the same packet communications that carry the voice data to perform any required call signaling. This is called xe2x80x9cin-bandxe2x80x9d signaling. For example, if the VOIP application executing on computer host 144 wants to notify the user telephony device 142 of an incoming call, a xe2x80x9cnew callxe2x80x9d packet is sent from the VOIP applications executing on the computer host 144 to host 145. The network 140 routes the new call signaling packet just like another other data packet. A VOIP application can transmit one or more signaling packets during the transmission of voice data packets. In this manner, with respect to the computer network infrastructure (e.g., data links 150 and the individual network devices 151 through 155), call signaling is treated the same as any other type of communications and is generally handled at the software application level.
Prior art protocols have been developed in an attempt to have a general purpose computer system control telephone switching equipment. One such protocol is called PINT, which stands for the PSTN to InterNeT protocol. PINT is a protocol under development by the Internet Engineering Task Force (IETF), which is a standards based organization. PINT defines a protocol to allow certain basic telephone switching services to be controlled via a computer on a connectionless network. The basic service provided by PINT allows a computer system such as a workstation to use PINT commands that are understandable by telephone switching equipment to have that telephone switching equipment establish a single call connection to a telephony device (i.e., a telephone) on a telephone network. PINT thus provides a tool in the form of basic protocol commands for a system developer to interface a computer to PSTN equipment. The PINT protocol specification suggests the ability to use PINT in the creation certain calling services such as click to dial and click to fax, but the implementation of such services is up to system and software designers. The PINT protocol thus provides a framework for interfacing computers to telephone equipment and provides a fundamental building block or function that allows a computer system to cause telephone switching equipment to create one or more call connections on the telephone network.
In the area of prior art private telecommunications systems, developers have created systems that provide calling services that extend beyond the services available in a public switched telephone network. Such private telecommunications systems operate using privately owned and typically more advanced telephone switching equipment commonly known as a xe2x80x9cPrivate Branch Exchange (PBX)xe2x80x9d or an xe2x80x9cAutomatic Call Distributor (ACD)xe2x80x9d. A typical PBX or ACD system interconnects a number of advanced PBX telephony devices designed to take advantage of the capabilities that the PBX has to offer. Essentially, the PBX and its associated PBX telephony devices provide a private telephone network. Since such private telecommunications equipment has been more recently developed as compared to conventional public telephone switching equipment that has been in place for sometimes fifty years or more, and since such equipment is intended for private use and control, PBX systems provide more advanced calling services such as call transfer from one PBX telephony device to another, auto-attendant voice messaging systems, and conference calling.
A typical PBX system (PBX and associated PBX telephony devices) is designed for use in a business environment and is quite expensive as compared to telephone equipment that consumers can use on a public switched telephone network. The PBX itself is typically a computer controlled device that may include software and hardware (e.g., electronics) as well as a number of ports for interconnecting the various PBX telephony devices. The PBX typically also provides one or more interfaces to allow the PBX network to be coupled to a PSTN network. Telephone calls that PBX users place between PBX telephony devices are handled completely by the PBX within the PBX network, without the need to complete call connections to public telephone switching equipment (e.g., a tandem or central office).
Some prior art PBX systems provide an interface to a computer system or a computer network. Such an interface can be used to direct the PBX system to place telephone calls between users of the PBX network, and in some cases, between a PBX network user and a person on a telephone that is external to the PBX network.
An example of such a prior art PBX system is disclosed in U.S. Pat. No. 5,991,394 (Dezonno et al.). The system disclosed in Dezonno allows a telephone computer to control an ACD or a PBX under the direction of connections made to the telephone computer from a computer network such as the Internet. In the Dezonno system, for example, a computer user on the Internet can send a call request message via his or her computer to a telephone computer that is interfaced to control the PBX. The call request message instructs the telephone computer to direct the PBX to create a telephone call from a PBX user telephone (e.g., from an agent in a business owning the PBX using an agent telephone coupled to the PBX system) through the PBX and out to a computer user telephone located on a telephone network. Essentially, this allows the computer user to have the business call-back the computer user. The computer user can specify the time at which the call-back is to be made. This allows, for example, the computer user to complete his or her use (e.g., web surfing, reading email, etc.) of the Internet via a dial-up telephone connection to an Internet Service Provider (ISP) over that computer user""s telephone line. Since the call-back can be specified to take place in the future, the telephone computer can thereafter detect the time at which to place the call-back and can then instruct the ACD (or PBX) to place the call between the agent""s PBX telephone and the computer user""s telephone (that was formerly in use to connect to the Internet).
Prior art telecommunications systems, both public and private, suffer in various degrees from a number of deficiencies. Collectively, these deficiencies significantly reduce the capabilities and services that are offered in such systems. In the case of prior art public telephone network systems discussed above, such public systems alone lack the ability to develop and deploy advanced calling services. This is primarily due to the fact that public telephone switching equipment is difficult to program and modify for new advanced calling services. Since a public telephone network is largely hardware based, adding new services requires the public telephone service provider to make significant modifications to public telephone switching hardware, firmware and/or software. This process can be quite difficult and expensive, especially when some of the public telephone switching hardware is out-of-date with current programming and switching technologies. Since a public telephone system must properly operate end-to-end in a compatible manner, older public telephone switching equipment must be upgraded to support newer advanced signaling techniques if a public telephone service provider is to provide such new services in a calling area.
And while private telephone switching equipment such as that provided in a PBX network offers enhanced calling services beyond those found in public telephone networks, development of new services is also difficult due to the proprietary nature of the PBX systems. To circumvent this, developers of systems such as that disclosed in Dezonno have attempted to provide software or Internet based calling services that include a dedicated telephone computer that interfaces to a PBX network to control calls within the PBX network. While the time-based call-back service in the Dezonno may provide some value to a business, the business is still required to provide a PBX network which can be controlled as explained therein. In other words, in the Dezonno system design, the telephone computer relies on special xe2x80x9cintelligentxe2x80x9d features of a private ACD or PBX. The telephone computer and the PBX or ACD together contain all of the logic required to provide the enhanced call-back calling service and requires that a business purchase both the telephone computer and a PBX system. The purchase of a PBX is quite expensive. Further still, placing call service logic within a single computer system that control the PBX makes the PBX prone to security threats such as hackers who gain unauthorized control of the telephone computer coupled to the Internet and thereafter have complete control of the ACD and PBX system. Numerous articles have been written about such security problems.
For further information on examples of such security attacks that can be made on PBX system designs such as that is Dezonno which provides full direct computer control of a PBX network, the reader is referred to an electronic magazine published online on the Internet called xe2x80x9cPhrack Magazinexe2x80x9d. Issues of Phrack Magazine are available for review on the Internet at xe2x80x9chttp://www.infowar.com/iwftp/phrack.xe2x80x9d Specifically, Phrack Magazine, Volume Four, Issue Forty-Four, File 19 of 27, which can is archived on the Internet at the following location xe2x80x9chttp://www.infowar.com/iwftp/phrack/P44-19.txt,xe2x80x9d discloses details of various attacks that can be made to PBX systems that are operated under control of a telephone computer system such as that disclosed in Dezonno.
The system in Dezonno is also limited to the placement of telephone calls in which one party must converse using an agent PBX-based telephone. In other words, at least one agent telephone must be involved in the conversation because the telephone computer can only control the PBX and its associated PBX agent telephones. Due to the proprietary nature of the interface between the PBX/ACD and the telephone computer, the telephone computer cannot be used to control call connections placed between public telephone devices, unless multiple complete calls are placed out, incurring multiple phone call charges. Other disadvantages of prior art telecommunications system exist as well. For instance, current public telephone signaling architectures and public telephone network infrastructures are extremely expensive to develop, deploy and maintain, are difficult to connect to, and provide a very limited number of voice related calling services, such as those discussed above. System designers have developed such systems with outdated assumptions which no longer apply in modem communications networks. For example, public telephone system designers have developed conventional public telephone networks with the assumption that administrative domains are geographically separate. With the advent of more recent long-haul and wireless networking equipment, geography is largely unimportant to the administration of such equipment.
Another flawed assumption of prior art connection-based public telephone networks is that they only need to support telephone-grade communications. As system designers try to augment these public telephone networks to support more advanced calling services and features such as those discussed above, additional signaling information requiring bandwidth beyond the requirements of voice data is often required. Designers are finding it to be extremely difficult and expensive to extend the current public switched telephony network and signaling systems beyond these assumptions which no longer apply.
Conventional public telephone network based telecommunications systems also suffer in that they are largely closed systems. That is, only the companies that own such systems are allowed to develop new services as they see fit, since the prior art model for developing such advanced calling services is based on modifications to the public switched telephone switching and signaling systems. For instance, of all of the calling services discussed above, few telephone networks offer every one of such services to every customer. Equipment owners typically only accommodate or develop new services when customer demand grows large enough to justify the cost of equipment upgrades and further signaling system development. Customers that desire customize services on a per-customer basis are largely un-accommodated. That is, if a single public telephone network customer wants to implement a special calling service, prior art public telephone systems do not provide such capability. The point is, connection-based public telephone networks offer a number of services beyond simple telephone calling capability, but those services are limited to development and deployment by the vendors and operators of the public telephone equipment and only supplied when customer demand is great enough to justify cost.
As an example, suppose a small business customer desires to have many different telephones at diverse geographical locations ring at the same time when a customer calls a single telephone number. If a public telephone service provider (e.g., a telephone company) does not offer such an advanced multiple-location ring service, the customer is out of luck and will have to do without such a service. It would be difficult if not impossible to implement such a service with a PBX system such as that in Dezonno, since a PBX lacks the required switch control. Even if a particular PBX did have the requisite software hooks, the expense and difficulty of owning and operating such sophisticated equipment would put the service beyond the means of any but the largest enterprises. Due to the complexity of offering such a service and security and privacy reasons, public telephone service providers do not offer access to telephone equipment for service creation or manipulation by the customers to implement services that they desire. The only access that telephone service providers generally allow to public switched telephone equipment is to setup and tear down individual call connections between telephone numbers, a service that is generally provided each time a regular telephone call is placed using public switched telephone equipment, or such services as can be accessed by using touch tones other than telephone numbers.
Conventional public telecommunications systems also provide a limited user interface. Generally, the operational interface to public telephone switching equipment is merely a touch tone key pad of numbers as found on most telephones. Users of prior art public telecommunications systems must adhere to the use of this interface for all services provided by the system. Though each of the specific limitations of this user interface and the system in general will not be discussed in complete detail here, an example use of a conventional telecommunications system for a simple service such as conference calling provides a vivid illustration of the significant limitations of prior art systems.
In order to establish a conference call between multiple public-use telephones using a conventional public telecommunications system, a third party person such as an operator must often be involved in the initial conference call setup if many parties are to be joined in the conference. Alternatively, the system may allow the user to depress the switch-hook to place current parties to the conference on hold while the phone number of another party is called. When the new party answers, the user again depresses the switch-hook to join the new party to the conference. In either case, this process is quite cumbersome. Moreover, the moderator (i.e., the originator) of the conference call generally has no way of seeing which members of the conference call are still involved with the call versus which members have hung-up the phone.
Prior art public telephone systems are also generally limited to providing tones called DTMF tones that are used to establish public telephone system call connections. DTMF tones are those tones that are generated when a user presses a key or number on the keypad numerical interface as explained above. Such tones provide only rudimentary control of public telephone switching equipment and are a slow mechanism of control for such equipment. That is, DTMF tone entry is often done tone by tone (i.e., numeral by numeral) when a user depresses buttons on a telephone keypad. One touch service activation is not generally found in such systems other than simple one touch services such as call redial. For example, a-user must manually (and therefore slowly) enter many key presses (or use an operator) in order to establish a multi-party call. Due to the slowness and cumbersome nature of the user interface of most prior art public telecommunication systems, the ability to develop robust services is severely limited.
In the area of connectionless network architectures that implement telecommunications services and systems such as Voice Over Internet Protocol services or VOIP, problems are also apparent in the prior art. Most notably, network system designers have invested large amounts of time and money to optimize conventional public telephone networks for the transport of toll-quality voice. On the other hand, the designers of connectionless computer-based networks such as the Internet have not optimized such networks for interactive or real-time media transport such as voice. Retrofitting the Internet for this type of real-time traffic is proving to be quite expensive and requires high speed data communications equipment. Connectionless or packet-based computer networks such as the examples discussed above in FIG. 2 can suffer latency issues when transporting voice quality data packets. Such latencies can result in lost or delayed data packets which results in diminished voice quality. Designers have proposed work around solutions involving complex connection-less protocols to reserve bandwidth in network devices to support toll-quality streams of voice data packets. However, such solutions are at the expense of bandwidth available to other data streams.
Another problem related to the implementation of telecommunications systems over computer networks is that computer network access is largely limited in its geographical scope. That is, there are far less network access points for a computer network such as the Internet than there are for conventional public telephone systems. Even when a telephone network provides the first leg of a connection to the Internet via a dial-up connection to a network access server at an Internet Service Provider or ISP, when users use such a link for telecommunications and voice data transport, bandwidth is often limited to the speed of the modem in use and/or the quality of the dial-up link to the computer to support data transfer (e.g., 56 Kbps). Moreover, in remote areas, users might only be able to connect a computer via the closest computer network access point which may require a long distance or toll-based telephone call. As compared to the extent and far reach of conventional public telephone networks, the Internet is less abound and thus conventional systems that use the Internet for transport of voice telecommunications are less available.
Also as noted above, the prior art systems and mechanisms such as the PINT protocol specification are lacking in definition of many advanced calling services. While the PINT specification does mention click to dial and click to fax features that could be implemented, specific details of such implementations are left up to designers. Generally, PINT simply provides a mechanism to allow a computer to communicate with telephone switching equipment and provides the tools to allow the computer to instruct a telephone system to create call connections. Systems that utilize these capabilities such as Dezonno are largely limited in their use to PBX networks which tight control over the PBX is required. There is no teaching or suggestion in PINT or references such as Dezonno of the advanced calling services explained herein as the invention. As will be explained, however, the PINT protocol can be used in various embodiments of the invention to support communications between a computer system implementing aspects of the invention on a computer network and a telecommunications network server and public telephone switching equipment that implements other aspects of the invention and that operates on a public telephone network.
The present invention significantly overcomes many of the aforementioned problems with conventional telecommunications systems implemented in either a circuit-switched or connection-based telephone network or in a connectionless network such as the Internet. The present invention is based in part on the observation that the different types of networks (i.e., circuit-switched telephone networks versus connectionless computer networks) can each be used to preferably support the two main aspects of (i) signaling and (ii) voice transport that are required for any telecommunications system.
For example, the Internet provides a flexible and efficient mechanism to support signaling and service support via software application control, while the telephone network is optimized to handle the transport of voice communications. The invention provides a xe2x80x9cmarriagexe2x80x9d of these two concepts by providing a telecommunications system that uses applications on a computer network such as the Internet for call signaling and advanced calling service implementations and that uses a public telephone network and public telephone switching equipment to provide the mechanism for voice transport under control of the computer network application signaling mechanisms. The invention is thus based in part on the notion of associating, signaling or otherwise controlling related public voice switching telephone network resources and equipment from an alternative network such as the Internet.
Moreover, the design of the invention differs from systems such as Dezonno since no PBX system or telephone network is required. Instead, the call service processing logic is provided completely within a telecommunications hosting server that is isolated from the public telephone switching equipment. The telephone switching equipment in this invention, as opposed to that in a system such as Dezonno, does not require a PBX under the control of the telephone computer. Instead, the telecommunications hosting server, of this invention operates as a separate computer system that is completely located within the connectionless network such as the Internet. Since no PBX system is required for the use of the invention, the invention provides advanced calling services between telephones that are all on the public telephone network. This allows the invention to be applies between many more diversely geographic areas. Also, since call processing logic is separate from call connection control via a separate telecommunications hosting server and a separate telecommunications network server, the system is less susceptible to security violations in the form of hackers attacking and gaining control of public telephone switching equipment. The present architecture allows the owners and operators of Internet and PSTN equipment to be completely separate administrative domains.
Using this and other concepts that are embodied in the various embodiments of the invention presented below allows the system of the invention to support a wide array of new and advanced telecommunications and calling services that operate completely over the public telephone network. Each of these advanced services are themselves embodiments of the invention. Before such new and advanced calling services are discussed in detail however, the infrastructure of the various embodiments of the invention will be presented in detail.
Generally, the invention includes mechanisms and techniques to allow users of computer systems and software configured according to the invention to interact with telecommunications software that executes or otherwise performs on a processor in a telecommunications hosting server. A preferred embodiment of a telecommunications hosting server is a workstation or other computer platform within a connectionless network such as the Internet and that is configured as a server. Such a computer platform may, for example, be a Unix or Windows NT workstation that can perform multi-processing. Via an application of the invention performing on the telecommunications hosting server, users can use calling services implemented in the application to establish calls on a conventional public switched telephone network. To do so, another connection from the telecommunications hosting server to another computer platform called a telecommunications network server is also provided in embodiments of the invention. The connection between the telecommunications network server and the telecommunications hosting server may be a connectionless network connection or may be a dedicated channel, bus, circuitry or other data transport mechanism.
The telecommunications network server may also be a workstation or similar computing platform that directs the public switched telephone network equipment to connect, disconnect, monitor, detect, report and otherwise track call connections to and/or from the public switched telephone switching equipment under the control of the telecommunications network server.
Since the telecommunications hosting server is a computer system using agent software configured according to the invention, a flexible platform is provided for development and deployment of many advanced telecommunications services. Through a unique signaling and control interface to public switched telephone switching equipment from the telecommunications network server, the system of the invention offer the benefits of robust software call services implementations and signaling controls in conjunction with the far reaching and optimized public switched telephone network to provide the actual voice transport. In one embodiment which will be explained in more detail, users of client computers can interact with software on the telecommunications hosting server over a network such as the Internet to cause the telecommunications hosting server to direct the telecommunications network server to perform many types of advanced calling features and services as will be explained.
Since no PBX system is required by the system of the invention, telephone calls controlled by the telecommunications hosting server can be placed between callers anywhere in the public switched telephone network (as opposed to one caller being required to be within the PBX network in systems such as Dezonno). This is accomplished by this invention since all call processing logic is placed in user agent software that performs in the telecommunications hosting server which is totally separate from the telecommunications network server computer. The telecommunications network server is interfaced to the public telephone switching equipment and simply creates, detects and monitors call connections, but does not perform the call processing logic. By separating the call processing and service logic into the telecommunications hosting server, and placing only the most basic call connection control (setup, detection and monitoring of call connections) into the telecommunications network server that interfaces to the public switched telephone equipment, security is enhanced as the two domains of activity (xe2x80x9cintelligent call processingxe2x80x9d and xe2x80x9cPSTN call setupxe2x80x9d) are separated.
More specifically, according to one embodiment of the invention, the system of the invention provides a method of managing call services in a telecommunications hosting server on a connection-less network. The method comprises the steps of receiving, at a telecommunications hosting server coupled to a connectionless network, at least one call application message including a request to create at least one call connection to a telephony device coupled to a connection-based network. A user of the system may send the call application message, for example, from a user agent interface (a client or user client interface). A typical example of a call application message is one or more packets transmitted over the connectionless network between the program operating the user client interface and the user agent. A specific example is an HTTP request use a web-browser as the user client interface and a web-server front end for the user agent. Other alternative call application messages are an email message, or another type of standard or proprietary protocol communications that specifies specific application data that the user agent can parse to determine the content of the request to create at least one call connection to a telephony device coupled to a connection-based network.
The method also includes the operations of processing the call application message according to user agent logic provided by a user agent performing within the telecommunications hosting server and generating at least one call signaling message based on the user agent logic. The call signaling message generally contains call connection information related to the telephony device coupled to a connection-based network and forwarding the at least one call signaling message from the telecommunications hosting server on a connectionless network to the connection-based network in order to create the at least one call connection to the telephony device on the connection-based network. A call signaling message is generally a specific signaling protocol message such as a message provided by the PINT or SS7 protocols that is transferred between the telecommunications hosting server and the telecommunications network server. A PINT protocol call signaling message can specify, for example, a specific telephone call to be placed on the connection-based network which may be a telephone network (e.g. PSTN). Telephony equipment is generally defined as any type of device that can couple to a connection based network such as a telephone network to inter-operate with network switching equipment such as a telephone switch controlled by the telecommunications network server. In this manner, a user on a computer, for instance, can among many other things, control the placement, reception and direction of telephone calls on a telephone network.
In another arrangement, the operation of generating generates the at least one call signaling message indicating at least two call connections that are to be completed between at least two different telephony devices on the connection-based network. Also according to this arrangement, the step of forwarding the call signaling message forwards the call signaling message indicating the at least two call connections to a telecommunications network server coupled to the connection-based network, such that the telecommunications network server can create and maintain the at least two call connections to allow the at least two different telephony devices on the connection-based network to perform telecommunications with one another.
Another arrangement of the invention includes the steps of generating at least one call signaling message containing call connection information related to a computer telephony device coupled to the connection-less network. Then, the arrangement includes the step of forwarding the at least one call signaling message containing call connection information related to the computer telephony device to the computer telephony device in order to establish at least one voice-over-computer-network session between the computer telephony device and the telecommunications hosting server. The arrangement then bridges the voice-over-computer-network session on the connection-less network to the at least one call connection on the connection-based network so that the telephony device on the connection-based network can perform telecommunications with the computer telephony device on the connection-less network. A computer telephony device is roughly defined as a device coupled to a connectionless network such as a computer equipped with a telephone handset or a microphone and speaker that can allow a user to perform telecommunications using such technologies as voice over computer network (e.g., Voice Over Internet Protocol or VOIP). This allows a user of the system to send and receive calls using PSTN based devices as well as computer (e.g. VOIP) devices.
In another arrangement, the step of generating includes the steps of initiating execution of a user agent respectively associated with a source of the at least one call application message. This allows the invention to trigger execution of a user agent upon, for example, an incoming call that is placed to the user. The arrangement also includes the operations of forwarding the at least one call application message including the request to create the at least one call connection to the user agent and processing the at least one call application message by the user agent to determine the call connection information related to the telephony device on a connection-based network. The call connection information includes a call source identifier indicating a source telephony device for the call connection and includes a call destination identifier indicating a destination telephony-device for the call connection. The caller can thus be identified by the user agent. The arrangement also includes the operations of generating at least one call signaling message indicating the call source identifier and generating at least one call signaling message indicating the call destination identifier. These may be the same call signaling message, and can be used to complete a call connection to the user on behalf of the caller.
In certain embodiments of the invention, the user agent generally provides enhanced calling services between a telephony device coupled to the connection-based network. The enhanced calling services can include, among other services, any or all of the following services: conference calling, whisper room conference calling, time-based whisper room conference calling, callback, time-based callback, call redirect, caller identification, call joining, and auto attendant.
In yet another arrangement of the invention, the step of initiating includes the steps of determining the source of the call application message and determining if a user agent associated with the source of the call application message is currently executing, and if not, causing execution of the user agent. This allows the user agent to be executed even if the user is not logged into the telecommunications hosting server.
According to another arrangement, the system can operate to include the steps of receiving a call signaling message from the connection-based network indicating a status of a connection on the connection based network and forwarding the call signaling message received from the connection-based network to an appropriate user agent. This allows a telecommunications network server that detects incoming calls to notify the telecommunications hosting server of such calls and the telecommunications hosting server can then direct such notification to appropriate user agents. The arrangement also includes the operation of updating call connection status information associated with the appropriate user agent(s) based on the call signaling message indicating the status of the connection on the connection based network. In other words, the user agent that receives such notification can track the status of call connection on the telephone network. This allows the user agent to use this information to, for example, handle other incoming call requests. If the example a user agent xe2x80x9cknowsxe2x80x9d that a line is busy, another request for a connection to that line (e.g., another user that may be attempting to call the busy line) can be directed to an alternative destination, such as voice mail, or to another non-busy line, of the user agent can provide a call signaling message in return that contains, for example, an audio message that the telecommunications network server can play back to the original caller attempting to connect to the user. The audio message can be a custom message based, for example, on the identity (as specified in the original received call signaling message) of the caller. Other example of audio feedback can be custom dial tones, custom ringing, and so forth.
To this end, another arrangement of the invention provides that the call signaling message received from the connection-based network by the user agent specifies a status which indicates availability of telephony device on the connection-based network. In response to such a call signaling message, the user agent performs the step of updating availability information related to the user agent. This allows the user agent to track the status of telephony devices associated with the user assigned to that user agent.
In another arrangement, the call signaling message received from the connection-based network by the user agent specifies a status which indicates success of the at least one call connection between telephony device on the connection-based network and the user agent performs the step of updating accounting information related to the user agent based on the success of the at least one call connection. This allows the user agent to track phone call accounting and time information for call connections made to the user telephony devices associated with the user assigned to the user agent. Updating accounting information and processing can include charging the call to one or more calling cards, for example, or can include selecting a preferred long distance carrier to which the call connection should be billed.
In another arrangement, the call signaling message specifies a connection to be placed on the connection-based network between at least two telephony devices coupled to the connection based network. This allows a telecommunications session to take place in response to signaling that occurs on the computer network.
In yet another arrangement, the system includes performing, in the telecommunications hosting server, a user agent on behalf of a user. Performance can include execution, interpreting, running, processing or otherwise carrying out instructions specified by user agent code. The user agent performs the step of receiving as summarized above, and the call application message is received from a telecommunications network server and indicates to the telecommunications hosting server that a call connection is in progress to telephony equipment on a connection-based network coupled to the telecommunications network server. Also in this arrangement, the call application message is sent to the user agent to notify the user of the current call connection. The user can select an option in the user agent to have the call connection transferred to different telephony equipment than the telephony equipment to which the call connection is currently in progress. Also, the call signaling message generated in the operation, of generating contains an indication that the call connection in progress to the telephony equipment on the connection! based network coupled to the telecommunications network server should be transferred by the telecommunications network server to different telephony equipment on the connection-based network coupled to the telecommunications network server as specified in the call signaling message. This arrangement allows the system to support user selected call transfers.
In another arrangement, the call signaling message specifies a connection to be placed on the connection-based network between a single telephony device coupled to the connection based network and wherein the call signaling message, also specifies a connection to be placed on the connection-less network between a single computer telephony device coupled to the connection-less network via a voice-over-computer-network protocol. Multiple telephony devices may also be specified. This allows calls to VOIP equipment as well as telephony equipment.
In yet another arrangement, in response to the step of receiving at least one call application message the method of the system of the invention further performs-the steps of determining accounting information associated with the at least one call application message and determining an optimum service provider to provide the at least one call connection on the connection-based network. In this case, the generated call signaling message containing call connection information identifies the optimum service provider to provide the at least one call connection on the connection-based network. This allows the system of the invention to select a preferred carrier for telecommunications sessions immediately prior to the session, or the system can switch carriers mid-session if a more preferred (e.g., less expensive and/or higher quality) carrier is available.
In another arrangement, the call application message is embodied in an email message transmitted from a client computer to a user agent executing on the telecommunications hosting server. The email message specifies a call connection to be made on the connection-based network and the user agent processes the email message and determines the call connection to be made as specified in the email message and causes a telecommunications network server to place the call connection on the connection-based network. This allows an email message to cause a call to be made, which is another example of an advanced service offered by the system of the invention.
In another arrangement, the call application message is provided when a user of a client computer initiates( e.g. clicks on) a hyperlink in a web browser on the client computer having a URL which causes the browser to xe2x80x9cfetchxe2x80x9d a web page provide by a web server. The web server may be provided within the telecommunications hosting server, or may be a separate web server serving a page to the browser of the user of the client computer. In either case, the web page, or simply the URL provided to the web server (e.g., within the telecommunications hosting server) may serve as a call application message to specify one or more call connection to be made on the connection-based network. That is, the web server that receives the URL from the user clicking within his or her browser can be tightly integrated into the telecommunications hosting server so that the appropriate user agent(s) is/are activated to make call connections as specified by that URL referenced by that user. The user agent in the telecommunications hosting server in such an embodiment can interface with the web server xe2x80x9cfront-endxe2x80x9d to processes the specified URL to determine the call connection(s) to be made which causes a telecommunications network server to place the call connection on the connection-based network.
This allows a simple click of a hyperlink in a browser to create a call application message (in the form of the browser communicating with the web server) to cause one or more calls to be made on a telephone network, which is another example of an advanced service offered by the system of the invention. In a simple example, a user agent can easily be configured to initiate a large conference call with many members (i.e., participants on the connection-based telephone network) via the user simply clicking on a conference call button in his or her browser. The agent can be pre-configured with the appropriate people to have joined in the call and the telecommunications hosting server can control the telecommunications network server to setup the required call connections. Extending this example, the user can then visually monitor the status of each participant in the conference call in real time via a visual display of information concerning the call connection state of each participant conference caller which is sent to the user""s browser via periodic status updates from the telecommunications hosting server. Via the user""s browser, the user can simply click on names of other people to have them joined in the conference call, and click on existing names to have them removed from the call or placed on hold.
In yet another arrangement, the call application message specifies a plurality of call connections to be placed on the connection-based network and includes instructions to allow each of the plurality of call connections to be joined in a conference. Thus conference calling can be arranged easily on the computer network, without having to pre-arrange a conference call with third party carrier assistance as in conventional systems. Other arrangements of the invention also provide a method for managing call services in a telecommunications hosting server on a connection-less network. Such arrangements include a method comprising the steps of receiving, in a telecommunications hosting server coupled to a connectionless network, at least one first call signaling message from the connection-based network indicating a request to establish at least one call connection to a telephony device associated with a user agent. Also included are the operations of generating at least one second call signaling message containing call connection information related to the telephony device associated with the user agent and forwarding the second call signaling message in order to establish the at least one call connection with the telephony device associated with the user agent.
In a related arrangement, the telephony device associated with the user agent is telephony device coupled to the connection-based network. Furthermore, the operation of forwarding the second call signaling message forwards the second call-signaling message to a telecommunications network server coupled to the connection-based network, such that the telecommunications network server can create and maintain at least one call connection on the connection-based network allowing telecommunications between a telephony device associated with a source of the at least one first call signaling message and a telephony device associated the user agent.
In another arrangement, the telephony device associated with the user agent is computer telephony device coupled to the connection-less network and the step of forwarding the at least one second call signaling message forwards the at least one second call signaling message to the computer telephony device coupled to the connection-less network to establish a voice-over-computer-network session. This may be, for example, a VOIP connection. The method further includes the step of bridging the voice-over-computer-network session on the connection-less network to a call connection on the connection-based network specified in the first call signaling message, such that telephony device associated with the source of the first call signaling message on the connection-based network can perform telecommunications with the computer telephony device on the connection-less network.
In another configuration, the steps of receiving, generating, and forwarding are performed by a user agent that is executed in response to the telecommunications hosting server detecting the first call signaling message. The user agent selected for execution is based on the identity of a call identifier specified in the at least one first call signaling message. This allows a call connection that arrives at the telecommunications network server to be passed to the telecommunications hosting server at which point a specific user agent is launched to handle processing for this incoming call. Since the user agent can be flexible and programmable as explained herein, it can process call logic to handle a variety of circumstances, each of which amounts to an advanced calling service provided by the system of the invention.
In yet another configuration, the method includes the steps of processing, in response to receiving the at least one first call signaling message, at least one invite processing and exposure rule based on a source of the at least one first call signaling message and determining if the at least one call connection should continue based on an outcome of the step of processing. If so, the method proceeds to perform the steps of generating and forwarding discussed above. This is an example of user programming via invite processing rules which can be used to instruct a user agent how to handle incoming call connections. Many examples of various ways to handle incoming calls and other message via invite processing rules are provided in the detailed description below.
According to another embodiment of the invention, the system includes a method providing enhanced telecommunications services to a user of a computer on a computer network having access to a telephony device coupled to a connection-based network. In one arrangement of this embodiment, the method comprises the steps of providing a user agent interface which allows a user to enter call connection information on the computer network. The method also includes the steps of formatting the call connection information into a call application message indicating source and destination telephony devices on the connection-based network between which telecommunications is to take place, the destination telephony device being associated with the user. The method also includes the step of forwarding the call application message over the computer network to a telecommunications hosting server. The call application message is then interpreted by the telecommunications hosting server to establish a telecommunications session between the source and destination telephony device specified in the call application message. In this manner, the user can interoperate with his or her user agent in the telecommunications hosting server to send and receive calls.
Other arrangements of the invention include the operations of allowing the user to input colleague information to the user agent interface and querying, via the user agent interface, user agents that are associated with colleague information specified by the user. In response to the step of querying, the system can receive colleague availability information, which, when presented to the user (e.g., via the user agent interface), indicates a status of other users associated with the input colleague information.
The system also includes arrangements that allow the user of the user agent interface to select colleague availability information indicating a specific colleague to which a call connection is to be placed. The system can also determine in the user agent a call connection identifier (e.g., a phone number) associated with the selected colleague availability information and can format and forward a call signaling message containing call signaling for a call connection to be placed to the call connection identifier associated with the selected colleague availability information to the telecommunications network server so that the telecommunications network server can establish a telecommunications session between the user and another user associated with the selected colleague availability information. This allows a user to view colleague information that can indicate, for example if a colleague is currently free or not to take a call. If they are free, the user can simply select the colleague information via the user agent interface and the system will cause a call to be placed between the user""s user telephony equipment and the telephony equipment associated with that colleague.
In another arrangement, the colleague availability information received in response to the querying includes at least one of an identity of a location of the user agent queried, a call identifier of the telephony device associated with the user agent queried, and a telephony device status of the telephony device associated with the user agent queried. This information can be used to place an outgoing call if the user so desires by selecting colleague information as explained above. In another arrangement, the system receives a query for colleague availability information and processes the query according to at least one availability exposure rule to produce colleague availability information for a user agent providing the query. Then the system forwards, for example, via an inter-agent message, the colleague availability information to the user agent providing the query.
Other embodiments of the invention includes methods providing enhanced telecommunications services. One such method comprises the steps of receiving, at a user agent executing in a telecommunications hosting server on a connectionless network, at least one call application message including a request to create at least one call connection to telephony device on a connection-based network. The method also includes the step of determining if another user agent is associated with the telephony device associated with the at least one call connection, and if so, querying via a status request message for the status of telephony device associated with the other user agent. The arrangement also performs the step of determining if a response to the status request message indicates the telephony device associated with the other user agent is available for a call connection, and if so, creating at least one call connection to the telephony device associated with the other user agent. This allows a user to query for information concerning the availability of others to take calls, for example, before actually making the calls.
Embodiments of the invention also include a telecommunications system comprising a first telecommunications hosting server which includes a first interface including a coupling to connect to a connection-less network and a second interface including a coupling to connect to a connection-based network. A memory is provided and coupled to the first interface and the second interface and a processor is coupled to the memory, to the first interface and to the second interface. The memory maintains a first user agent that, when executed in conjunction with the processor, provides calling services on behalf of a respective first user of the user agent. The first user agent is loadable into the memory and executable by the processor to communicate via the first and second interfaces using messages that are associated with the first user agent, such execution of the first user agent provides management of call connections within the connection-based network via the first user on the connection-less network. The call connections are placed between telephony equipment (e.g., telephones) coupled to the connection-based network.
In another arrangement, the processor executes the first user agent to receive from the first interface (e.g., from the user agent interface) at least one call application message including a request to create at least one call connection to telephony device on a connection-based network. The processor, under direction from the user agent, generates at least one call signaling message containing call connection information related to the telephony device coupled to a connection-based network and then forwards, via the second interface, the at least one call signaling message to the connection-based network in order to create the at least one call connection to the telephony device on the connection-based network.
In another arrangement, the processor executes the first user agent to generate the at least one call signaling message indicating at least two call connections that are to be completed between at least two different pieces of telephony device on the connection-based network and the processor forwards, via the second interface, the at least one call signaling message indicating the at least two call connections to a telecommunications network server coupled to the connection-based network, such that the telecommunications network server can create and maintain the at least two call connections to allow the at least two different pieces of telephony device on the connection-based network to performs telecommunications with one another.
In yet another configuration, the processor executes the first user agent to generate at least one call signaling message containing call connection information related to computer telephony device coupled to the connection-less network. Also, the processor forwards, via the first interface, the call signaling message containing call connection information related to a computer telephony device to the computer telephony device located on the connection-less network in order to establish at least one voice-over-computer-network session between the computer telephony device and a voice-over-computer-network server. The processor also bridges, via the first and second interfaces, the voice-over-computer-network session on the connection-less network to the call connection on the connection-based network so that the telephony device on the connection-based network can perform telecommunications with the computer telephony device on the connection-less network.
In still another arrangement, the processor initiates execution of a user agent respectively associated with a source of the at least one call application message. The processor also forwards the call application message including the request to create the call connection to the user agent and then the processor executes the user agent to process the call application message to determine the call connection information related to the telephony device on a connection-based network. The call connection information includes a call source identifier (e.g., source phone number or caller id) indicating a source telephony device and/or user (i.e., a person or machine making the call) for the call connection and includes a call destination identifier (e.g., the phone number being called) indicating a destination telephony device (e.g., a person or machine being called) for the call connection. The user agent, when executing on the processor, generates at least one call signaling message indicating the call source identifier and generates at least one call signaling message indicating the call destination identifier. This allows the user agent to cause the telecommunications network server to establish a telecommunications session between the source and destination.
In another arrangement, the processor determines the source of the call application message and determines if a user agent associated with the source of the call application message is currently executing, and if not, causes execution of the user agent. This allows a runtime environment of the telecommunications hosting server to start user agents when needed.
In another configuration, the processor, receives a call signaling message from the connection-based network indicating a status of a connection on the connection based network and the processor forwards the call signaling message received from the connection-based network to an appropriate user agent. In this case, the user agent, while executing on the processor, updates call connection status information associated with the appropriate user agent based on the call signaling message indicating the status of the connection on the connection based network.
In another configuration, the processor executes the first user agent to receive, in the telecommunications hosting server, at least one first call signaling message from the connection-based network indicating a request to establish at least one call connection to telephony device associated with a user agent. The processor also executes the first user agent to generate at least one second call signaling message containing call connection information related to the telephony device associated with the user agent. The processor also executes the first user agent to forward the at least one second call signaling message in order to establish the at least one call connection with the telephony device associated with the user agent.
In another configuration, the telephony device associated with the user agent is telephony device coupled to the connection-based network and the processor, under direction of the user agent, forwards the at least one second call signaling message to a telecommunications network server coupled to the connection-based network, such that the telecommunications network server can create and maintain at least one call connection on the connection-based network allowing telecommunications between telephony device associated with a source of the at least one first call signaling message and telephony device associated the user agent.
In yet another configuration, the telephony device associated with the user agent is a computer telephony device (e.g., a computer system with a microphone and speaker or a telephone handset coupled to the computer) coupled to the connection-less network and the processor, under direction of the user agent, forwards the at least one second call signaling message to the computer telephony device coupled to the connection-less network to establish a voice-over-computer-network session. Also in this arrangement, the processor bridges the voice-over-computer-network session on the connection-less network to a call connection on the connection-based network specified in the first call signaling message, such that telephony device associated with the source of the first call signaling message on the connection-based network can perform telecommunications with the computer telephony device on the connection-less network. This allows both voice over computer network (e.g., VOIP) calls and PSTN based calls to be managed by the invention.
In another arrangement, the operations of receiving, generating, and forwarding are performed by a user agent that is executed on the processor in response to the telecommunications hosting server processor detecting the at least one first call signaling message. In this case, the user agent selected for execution by the processor is based on the identity of a destination and/or source call identifier specified in the at least one first call signaling message.
In another configuration, the processor executes the first user agent to process, in response to receiving the at least one first call signaling message, at least one invite processing and exposure rule based on a source of the at least one first call signaling message. Such rules allow the agent to act on the user behalf. Also in this configuration, the processor, under direction of the user agent, determines if the at least one call connection should continue based on an outcome of the step of processing, and if so, proceeds to perform the steps of generating and forwarding noted above.
In another configuration, the processor, while executing the first user agent, interprets the at least one call signaling message received from the connection-based network to generate at least one inter-agent message which the processor forwards to second user agent executing within the telecommunication hosting server. This allows one agent to communicate with another via messaging to signal the arrival of incoming calls, to check status, and so forth as will be explained herein.
In another configuration, the connection-less network is a computer network and is coupled to the first interface and the connection-based network is a telephone network and is coupled to the second interface and the end-user equipment is a telephony device. In such a configuration, the first user agent communicates with the user client on the computer network to allow telephone calls to be placed and accepted via the telephony device coupled to the connection-based network.
In still another configuration the coupling to connect to a connection-less network includes a coupling to a telecommunications network server. In this case, the telecommunications network server is a computerized device that includes a coupling to telephone switching equipment on the connection-based network and the telecommunications network server can control call connections within the telephone switching equipment that are placed and received on the connection-based network under direction from the telecommunications hosting server.
In another configuration, the first user agent provides enhanced calling services between telephony device coupled to the connection-based network under control of the user client. The enhanced calling services can include conference calling, call redirect, caller identification, and call joining, and auto attendant and auto-routing, as well as other explained herein.
In another configuration, the system performs a second user agent that is associated with a different user client than the first user agent and coupled to the connection-less network. The second user agent executes on a processor in a telecommunications hosting server and includes a means for intercommunicating (e.g., IPC mechanisms and inter-agent messages) with the first user agent. The second user agent may perform or execute in the same telecommunications hosting server as the first user agent or a second telecommunications server may be provided which is configured with similar interfaces, memory and a processor as in the first telecommunications server. In this case, the second telecommunications hosting server executes the second user agent which communicates over the connection-less network to exchange availability information concerning the status of one ore more telephony devices on the connection-based network that are associated with each of the first and second user agents.
If the first and second user agent perform within the same telecommunications hosting server, then a form of inter-process communication can be used to allow the agents to communicate. It is to be understood that there may be many more that two user agents as well. In variations of this embodiment, there may be groups of telecommunications hosting servers that are geographically dispersed, or a group may serve a single local, with many groups in different locales. The telecommunications hosting server configurations may be central of distributed. In a distributed arrangement, a load balancer may cause the user agent for a particular user to perform on (i.e., to be executed on) any one of a selected group of telecommunications hosting servers, depending upon load conditions.
In another embodiment, the telecommunications hosting server includes a voice over computer network gateway coupled to the first and second interfaces. The voice over computer network gateway in the telecommunications hosting server allows the first user agent to generate and send at least one call signaling message containing call connection information related to computer telephony device coupled to the connection-less network to the voice over computer network gateway. The voice over computer network gateway forwards, via the first interface, the at least one call signaling message containing call connection information related to computer telephony device to the computer telephony device located on the connection-less network in order to have the voice over computer network gateway establish at least one voice-over-computer-network session between the computer telephony device and a voice over computer network gateway. The voice over computer network gateway also bridges the at least one voice-over-computer-network session on the connection-less network to the call connection on the connection-based network so that the telephony device on the connection-based network can perform telecommunications with the computer telephony device on the connection-less network.
The invention also provides a system for providing enhanced telecommunications services. In one configuration, the system comprises at least one telecommunications hosting server coupled to a connectionless network and a plurality of user agents. Each user agent executes on one of the telecommunications hosting servers and each executes on behalf of a respective user. The telecommunications network server is coupled to the connection-less network and is coupled to a connection-based network. The telecommunications network server is capable of establishing call connections to at least one telephony device coupled to the connection-based network based on messaging signals received from the plurality of user agents executing on the at least one telecommunications hosting server on the connection-less network, thus allowing a respective user of a user agent to establish telecommunications on the connection-based network via instructional commands sent to the user agent on the connection-less network.
In another arrangement, the,plurality of user agents are programmable by the users of such user agents, and the instructional commands are rules provided by the user of the user agent that indicate to the user agent how to process incoming call signaling messages, call application messages and inter-agent messages. Such rules may depend upon, or may inquire when used or performed, as to the state of a single user agent or the rules may depend upon and determine the state or collective state of many user agents.
In yet another arrangement, the rules are invite processing rules and when the user agent receives a call signaling message indicating that a call connection is desired to be established with the user associated with the user agent receiving the call signaling message, in response thereto, the user agent determines a call source identifier of the call signaling message and processes the call source identifier in conjunction with the invite processing rules to determine if a call connection should be established with the user of the user agent. The rules are thus an example of the programming of a user agent.
In another embodiment, the user agent is programmed by the user via instructional commands or other user interaction to provide a call signaling message containing custom audio information back to a telecommunications network server in response to receiving an incoming call signaling message from the telecommunications network server indicating that a call connection is desired to be established with a user of the user agent. The call signaling message contains the custom audio information and is received by the telecommunications network server and the audio information is provided on a call connection associated with the call source identifier of the incoming call signaling message. In this case, a user of telephony equipment that caused the telecommunications network server to originate the incoming call signaling message can audibly hear the custom audio information. This allows a user to specify custom audio messages such a wave (.wav) files to be provided back to the telecommunications network server in response to incoming call connections. The .wav files can be played by the telecommunications network server over the phone switch to the call originator(s).
In another arrangement, the custom audio information is a custom voice message provided by the user to the user agent, while in yet another arrangement, the custom audio information is a custom dial tone provided by the user to the user agent.
Another arrangement provides that the at least one telecommunications hosting server is a plurality of telecommunications hosting servers located on and possibly spread out on the connectionless network. In this case, each user agent of the plurality of user agents executes on at least one of the plurality of telecommunications hosting servers. Each user agent, upon execution, can registers the telephony device that is associated with the user agent at that time with the one or more telecommunications hosting servers upon which that user agent performs, such that call connections made to telephony device(s) that are associated with the user agent are indicated to the user agent.
The system also provides a telecommunications network server comprising a coupling to at least one telecommunications hosting server and a coupling to a connection-based network. A processor is provided that performs the operation of executing a telecommunications service process, such as a user agent. The telecommunications service process is capable of establishing call connections to telephony devices coupled to the connection-based network upon receipt of call signaling messages received from the telecommunications hosting server. The service process is also capable of indicating, via a call signaling message sent to the connection-less network, the availability or existence of a call connection on the connection-based network that presently exists within the telecommunications network server.
In a related embodiment, the coupling to the at least one telecommunications hosting server is a coupling to a plurality of telecommunications hosting servers. As such, each telecommunications hosting server capable of providing a call signaling message to the telecommunications network server to direct the telecommunications network server to control call connections on the connection-based network.
Another embodiment of the invention provides a user agent process performing within a telecommunications hosting server. The user agent process includes a means for receiving at least one call signaling message indicating an incoming call connection. Also included is a means for processing the at least one call signaling message to provide enhanced calling services including at least one of conference calling, whisper room conference calling, time-based whisper room conference calling, callback, time-based callback, call redirect, caller identification, call joining, and auto attendant.
In another embodiment, referred to as a call-back embodiment, the user agent includes a means for detecting that the incoming call connection is from a user associated with the user agent. In this case, the user agent further includes a means for allowing the user to review at least one instance of call logging information including the call source identify of at least one former caller who attempted to access the user via the user agent. Reviewing call logging information can be done, for example, when the user listens to voice mail messages maintained by the user agent. The user agent in this embodiment also includes a means for allowing the user to enter a call-back signal to the user agent. The call back signal causes the user agent to direct a telecommunications network server to establish a call connection to a call source identity of the particular instance of call logging information to which the user directed the call-back signal. Also includes is a means for directing the telecommunications network server to bridge the call connection to the call source identity of the particular instance of call logging information to which the user directed the call-back signal with the incoming call connection associated with the user, such that the user is placed in a telecommunications session with telephony equipment associated with the call source identifier. This allows a user who is listening to voice mail, for example, to enter a call-back signal in response to which the user agent places a call to the caller who left the voice mail.
Embodiments of the invention also can be embodied as software. In this case, embodiments of the invention include a computer program product having a computer-readable medium including computer program logic encoded thereon for providing enhanced telecommunications services, such that the computer program logic, when executed on at least one processing unit with a telecommunications hosting server, causes the at least one processing unit to perform the all of the aforementioned methods, steps and operations. That is, user agents, the user agent interface, the components of the telecommunications hosting server and the telecommunications network server and related data system and agent data structures for example can be programs written in software in any language. Such program may also be compiled into object code. As such, a computer readable medium such as a CDROM, floppy or hard disk or even a data structure in memory or that is transferred as a propagated signal (e.g., as a URL or as an email message) that contains the code in source or object form for any portion of this invention, such as a user agent, the telecommunications hosting server processing or telecommunications network server processing, of the user agent interface processing, or user agent or telecommunications hosting server data structures are all considered embodiments of the invention without the requirement that this code and/or data be loaded into a computer system or telephone equipment.
The methods and arrangements of the invention are preferably implemented primarily by computer software and hardware mechanisms. Certain embodiments of this invention, as summarized above and as explained more fully below, are implemented in software products and computer systems outfitted and configured by MetaTel, Inc. of Waltham, Mass., who is the assignee of the present invention.